#pragma once
#include "packet.h"
#ifdef __linux__
#include <signal.h>
static inline __attribute__((constructor)) void Init()
{
	signal(SIGPIPE, SIG_IGN);	//默认忽略对SIGPIPE信号的处理,因为send时如果服务端关闭再重启则send会触发SIGPIPE导致进程退出
}
#endif

namespace KRPC {

struct COM
{
	virtual ~COM() {}

	virtual bool recv(Packet &packet, int msec) = 0;

	virtual bool send(const Packet &packet) = 0;
	
	virtual bool isLocal() const {return true;}
};

}